// package语句：声明当前类所在的包
// com.itheima.javabean表示这是一个JavaBean类型的类，通常用于封装数据和操作
package com.itheima.javabean;

// 文档注释：说明这个类的主要功能
/** 学生业务操作对象：负责对学生的数据进行业务处理 */

// public是访问修饰符，表示这个类可以被任何地方访问
// class关键字用于定义一个类
// StudentOperator是类名，表示这是一个学生操作类，用于处理学生相关的业务逻辑
public class StudentOperator {
    // private是访问修饰符，表示只有这个类内部可以访问这个变量
    // Student s：声明一个Student类型的成员变量s，用于存储要操作的学生对象
    // 这是类的属性，也叫成员变量
    private Student s; 
    
    // 构造方法：用于创建StudentOperator对象时初始化
    // 构造方法名与类名相同，没有返回值
    // Student s是参数，表示创建操作对象时需要传入一个学生对象
    public StudentOperator(Student s) {
        // this.s = s：this代表当前对象，这里将传入的学生对象赋值给当前对象的s成员变量
        // 使用this可以区分成员变量和局部变量（参数）
        this.s = s;
    }
    
    // printAllScore方法：打印学生的总成绩
    // public是访问修饰符，表示这个方法可以被任何地方调用
    // void表示这个方法没有返回值
    public void printAllScore() {
        // System.out.println：用于在控制台输出信息
        // s.getName()：调用学生对象的getName方法获取学生姓名
        // s.getMath()：调用学生对象的getMath方法获取数学成绩
        // s.getEnglish()：调用学生对象的getEnglish方法获取英语成绩
        // + 号在这里用于字符串拼接，将各个部分连接成一个完整的字符串
        System.out.println(s.getName() + "总成绩是：" + (s.getMath() + s.getEnglish()));
    }

    // printAverageScore方法：打印学生的平均成绩
    // public是访问修饰符，表示这个方法可以被任何地方调用
    // void表示这个方法没有返回值
    public void printAverageScore() {
        // 与printAllScore类似，但这里计算的是平均成绩（总成绩除以2）
        // 数学运算先于字符串拼接，所以总成绩的计算需要用括号括起来
        System.out.println(s.getName() + "平均成绩是：" + (s.getMath() + s.getEnglish()) / 2);
    }
}
